import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class SyncArrayList<T> implements Serializable{
	private static final long serialVersionUID = -6564650277912142333L;

	private ArrayList<T> list;
	
	public SyncArrayList(){
		list = new ArrayList<T>();
	}
	
	public synchronized T get(int index){
		return list.get(index);
	}
	
	public synchronized void add(T t){
		list.add(t);
	}
	
	public synchronized void add(int index, T t){
		list.add(index, t);
	}
	
	public synchronized T remove(int index){
		return list.remove(index);
	}
	
	public synchronized int size(){
		return list.size();
	}
	
	public synchronized List<T> toList(){
		return new ArrayList<T>(list);
	}
}
